#ifndef __DRM_PAGE_FILP_H__
#define __DRM_PAGE_FILP_H__

#include <errno.h>
#include <fcntl.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/mman.h>
#include <time.h>
#include <unistd.h>
#include <xf86drm.h>
#include <xf86drmMode.h>
#include <signal.h>

struct drm_device {
	uint32_t width;			//显示器的宽的像素点数量
	uint32_t height;		//显示器的高的像素点数量
	uint32_t pitch;			//每行占据的字节数
	uint32_t handle;		//drm_mode_create_dumb的返回句柄
	uint32_t size;			//显示器占据的总字节数
	uint32_t *vaddr;		//mmap的首地址
	uint32_t fb_id;			//创建的framebuffer的id号
	struct drm_mode_create_dumb create ;	//创建的dumb
 	struct drm_mode_map_dumb map;			//内存映射结构体
};


class DrmPageFlip
{
public:
    DrmPageFlip();
    ~DrmPageFlip();

public:
    int init(void);
    int show_image(int num);

public:
    struct drm_device buf[3];

private:
    int m_fd;					//文件描述符
    // uint32_t m_conn_id;
    uint32_t m_crtc_id;
    drmEventContext m_ev;
    drmModeRes *m_res;
    uint32_t m_conn_id;
    // uint32_t m_crtc_id;
    drmModeConnector *m_conn;	//connetor相关的结构体

};

#endif//__DRM_PAGE_FILP_H__